package com.diyizu.youdianda.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.diyizu.youdianda.common.R;
import com.diyizu.youdianda.dto.SysRoleDto;
import com.diyizu.youdianda.dto.SysRolePageDto;
import com.diyizu.youdianda.entity.SysRole;
import com.diyizu.youdianda.service.SysRoleService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Slf4j
@RestController
@RequestMapping("/sys_role")
public class SysRoleController {

    @Autowired
    private SysRoleService sysRoleService;

    //分页
    @GetMapping("/list")
    public R<SysRolePageDto> list(String name, Integer page, Integer limit){
        log.info("角色管理分页请求：name="+name+";page="+page+";limit="+limit);
        SysRolePageDto sysRolePageDto = sysRoleService.pageData(name, page, limit);
        return R.success(sysRolePageDto);
    }

    //角色列表-全部
    @GetMapping("/allData")
    public R<List<SysRole>> allData(){
        log.info("角色管理展示全部角色。。。");
        List<SysRole> list = sysRoleService.list();
        return R.success(list);
    }

    //添加
    @PostMapping("/add")
    public R<String> add(@RequestBody SysRoleDto sysRoleDto) {
        log.info("角色管理添加请求：sysRoleDto="+sysRoleDto);
        sysRoleService.saveSysRole(sysRoleDto);
        return R.success("添加成功");
    }

    //删除
    @GetMapping("/del")
    public R<String> del(String id){
        log.info("角色管理删除请求：id="+id);
        R<String> stringR = sysRoleService.delSysRole(id);
        return stringR;
    }

    //角色详情
    @GetMapping("/rowInfo")
    public R<SysRole> rowInfo(String id){
        log.info("角色管理角色详情：id="+id);
        //如果有值就返回该项数据
        SysRole sysRole = sysRoleService.rowInfo(id);
        if (sysRole!=null){
            return R.success(sysRole);
        }
        //没有给出提示
        return R.error("未找到该数据");
    }

    //角色修改
    @PostMapping("/update")
    public R<String> update(@RequestBody SysRoleDto sysRoleDto){
        log.info("角色管理修改请求：sysRoleDto="+sysRoleDto);
        sysRoleService.updateSysRole(sysRoleDto);
        return R.success("修改成功");
    }

}
